/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.guaraba.patrimonio.controller;

import br.com.guaraba.patrimonio.controller.util.JsfUtil;
import br.com.guaraba.patrimonio.modelo.Pessoa;
import br.com.guaraba.patrimonio.facade.PessoaFacade;
import br.com.guaraba.patrimonio.modelo.Instituicao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;
import org.apache.log4j.Logger;

/**
 *
 * @author marcelo
 */
@ManagedBean
@SessionScoped
public class PessoaController implements Serializable {

    static Logger logger = Logger.getLogger(PessoaController.class.getName());
    @ManagedProperty(value = "#{jsfUtil}")
    private JsfUtil jsfUtil;
    private Pessoa pessoa;
    @EJB
    private PessoaFacade pessoaFacade;
    private List<Pessoa> listaPessoas;

    public JsfUtil getJsfUtil() {
        return jsfUtil;
    }

    public void setJsfUtil(JsfUtil jsfUtil) {
        this.jsfUtil = jsfUtil;
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public List<Pessoa> getListaPessoas() {
        return listaPessoas;
    }

    public void setListaPessoas(List<Pessoa> listaPessoas) {
        this.listaPessoas = listaPessoas;
    }

    public PessoaController() {
        this.pessoa = new Pessoa();
        this.listaPessoas = new ArrayList<Pessoa>();
    }

    public String DoSomeThink() {
        return "index";
    }

    public String login() {
        if (pessoa.getEmail().equals("marcelo")) {
            return "index";
        } else {
//            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Usuario invalido", null);
//            FacesContext.getCurrentInstance().addMessage(null, message);
//            FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("msgs");
//            String teste = Mensagem.getValue("Bundle", new Locale("en","US"), "teste");
//            JsfUtil.addErrorMessage("Opa esta errado ze" + teste);
            jsfUtil.addErro("teste");


//              UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
//              Locale local = viewRoot.getLocale();
//              JsfUtil.addErrorMessage(local.toString());


            return "login";
        }
    }
    public void NovaPessoa(){
        this.pessoa = new Pessoa();
    }

    public void Salvar(){
        try {
            this.pessoaFacade.create(pessoa);
            jsfUtil.addSuccess("Pessoa_salva_com_sucesso");
            this.NovaPessoa();
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }
    public void EditarPessoa(){
        try {
            this.pessoaFacade.edit(pessoa);
            jsfUtil.addSuccess("Pessoa_salva_com_sucesso");
            this.NovaPessoa();
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }

    public void BuscarTodasPessoas() {
        this.listaPessoas = this.pessoaFacade.findAll();
    }

    public List<SelectItem> getSelectPessoas(){
        List<Pessoa> listaPessoa = this.pessoaFacade.findAll();
        List<SelectItem> list = new ArrayList<SelectItem>();
        for(Pessoa p:listaPessoa){
            list.add(new SelectItem(p.getId(), p.getNome()));
        }
        return list;
    }
}
